package Controllers;

import Domein.SpelerDeelname;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 *
 * @author Tim
 */
public class Tafel implements ActionListener {
    /**
     *
     */
    public GUI.Tafel gt;
    private SpelerDeelname speler;

    /**
     *
     * @param t
     */
    public Tafel(GUI.Tafel t){
        this.gt = t;
        speler = (SpelerDeelname)gt.gc.spel.ronden.get(gt.gc.spel.ronden.size()-1).deelname.get(gt.gc.spelerNr);

    }

    /**
     *
     */
    public void setSaldo(){
        
    }

    /**
     *
     */
    public void setInzet(){
        
    }

    /**
     *
     */
    public void setRatio(){

    }
    
    /**
     *
     */
    public void setGebruikersnaam(){
        
    }

    /**
     *
     */
    public void setSpelersinfo(){
        
    }
    
    /**
     *
     */
    public void Inzetten(){
        if(Double.parseDouble(gt.inzetText.getText()) < 0){
            JOptionPane.showMessageDialog(gt.gc,"De inzet moet een positief getal zijn.");
        }
        else{
        try{speler.inzetten(Double.parseDouble(gt.inzetText.getText()));}
        catch(NumberFormatException e){
            JOptionPane.showMessageDialog(gt.gc,"De inzet moet een positief getal zijn.");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(gt.gc,e.getMessage());
        }
        
        }
        repaintTafels();
    }

    /**
     *
     */
    public void kaart(){
        try {
            speler.handen.get(0).neemKaart();
            if(speler.handen.get(0).getTotaalwaarde() >= 22) {
                speler.handen.get(0).setActive(false);
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(gt.gc,ex.getMessage());
        }
        repaintTafels();
    }

    /**
     *
     */
    public void verdubbelen(){
        speler.handen.get(0).setInzet(speler.handen.get(0).inzet*2);
        kaart();
        passen();
        repaintTafels();
    }

    /**
     *
     */
    public void passen(){
        speler.handen.get(0).setActive(false);
        // aanDeBeurt afsluiten
        repaintTafels();
    }

    /**
     *
     */
    public void verzekeren(){
        speler.handen.get(0).verzekeren(speler.handen.get(0).inzet/2);
        repaintTafels();
    }

    /**
     *
     */
    public void split(){
        JOptionPane.showMessageDialog(gt.gc, "Deze functie komt nog!");
        repaintTafels();
    }

    /**
     *
     * @param b
     */
    public void enableButton(JButton b){
        if(b == gt.inzetButton){
            gt.inzetText.setEnabled(true);
        }
        b.setEnabled(true);
    }
    /**
     *
     * @param b
     */
    public void disableButton(JButton b){
        if(b == gt.inzetButton){
            gt.inzetText.setEnabled(false);
        }
        b.setEnabled(false);
    }
    /**
     *
     */
    public void repaintTafels(){
        gt.gc.cspelers.server.refreshTafels();
    }
    /**
     *
     */
    public void speel(){

    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == gt.inzetButton){
            Inzetten();
        }
        if(e.getSource() == gt.kaartButton){
            kaart();
        }
        if(e.getSource() == gt.doubleButton){
            verdubbelen();
        }
        if(e.getSource() == gt.pasButton){
            passen();
        }
        if(e.getSource() == gt.splitButton){
            split();
        }
        if(e.getSource() == gt.verzekerenButton){
            verzekeren();
            
        }
        repaintTafels();
    }
}
